Canvas教程-MDN

toc and abstract.
https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API

2018.3.12 星期一 8:24

一 基本用法

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 100, 100);

二 绘制形状

栅格

在我们开始画图之前,我们需要了解一下画布栅格(canvas grid)以及坐标空间。

绘制矩形

fillRect(x, y, width, height)
strokeRect(x, y, width, height)
clearRect(x, y, width, height)

绘制路径

图形的基本元素是路径。路径是通过不同颜色和宽度的线段或曲线相连形成的不同形状的点的集合。一个路径,甚至一个子路径,都是闭合的。使用路径绘制图形需要一些额外的步骤。

beginPath()
closePath()
stroke()
fill() 

绘制一个三角形

移动笔触

moveTo(x, y)

线

lineTo(x, y)

圆弧

绘制圆弧或者圆,我们使用arc()方法。当然可以使用arcTo(),不过这个的实现并不是那么的可靠,所以我们这里不作介绍。

arc(x, y, radius, startAngle, endAngle, anticlockwise)
arcTo(x1, y1, x2, y2, radius)

二次贝塞尔曲线及三次贝塞尔曲线

quadraticCurveTo(cp1x, cp1y, x, y)
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

绘制二次贝塞尔曲线,cp1x,cp1y为一个控制点,x,y为结束点。
绘制三次贝塞尔曲线,cp1x,cp1y为控制点一,cp2x,cp2y为控制点二,x,y为结束点。

矩形

rect(x, y, width, height)

当该方法执行的时候,moveTo()方法自动设置坐标参数(0,0)。也就是说,当前笔触自动重置回默认坐标。

组合使用

Path2D 对象

  1. Path2D()
    Path2D()会返回一个新初始化的Path2D对象(可能将某一个路径作为变量——创建一个它的副本,或者将一个包含SVG path数据的字符串作为变量)。

    new Path2D(); // 空的Path对象
    new Path2D(path); // 克隆Path对象
    new Path2D(d); // 从SVG建立Path对象

  2. Path2D.addPath(path [, transform])​
    添加了一条路径到当前路径(可能添加了一个变换矩阵)。

使用 SVG paths

var p = new Path2D("M10 10 h 80 v 80 h -80 Z");

这条路径将先移动到点 (M10 10) 然后再水平移动80个单位(h 80),然后下移80个单位 (v 80),接着左移80个单位 (h -80),再回到起点处 (z)。

8:34

三 添加样式和颜色

色彩 Colors

透明度 Transparency

线型 Line styles

渐变 Gradients

图案样式 Patterns

阴影 Shadows

Canvas 填充规则

四 绘制文本

五 使用图片

六 变形

七 合成与裁剪

八 基本动画

九 高级动画

零 像素操作

一 点击区域和无障碍访问

二 canvas 的优化

三 终极

knowledge is no pay,reward is kindness
0%